// pages/file/file.js
import {
  request
} from '../../service/network.js';
import {
  getSetting
} from '../../utils/utils.js';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    classify: '',
    edit: null,
    isNightMode: wx.getStorageSync('isNightMode'),
    fileListData: {
      listConfig: {
        isFolder: true
      },
      listData: {}
    },
    folderListData: {
      listConfig: {
        isFolder: true
      },
      listData: {}
    },
    inputConfig: { //自定义弹框输入框的配置
      num: 0, //初始化弹出框里的输入的字数
      value: '', //输入的新的昵称
      tip: '请输入文件夹名',
      maxlength: 10,
      errorMsg: '仅支持中文、英文、数字哦！', //错误信息的内容
    },
    fileFrameData: { //文件页面 传入popup弹框组件的数据
      frameConfig: { //组件配置
        isOpacity: false, //是否要组件透明
        isNeedMask: true, //是否需要组件遮罩
        isNeedTipText: true, //是否要提示信息
        isShowFrame: false, //是否弹出修改昵称弹框
        isShowError: false, //是否显示修改名字弹出的错误信息
      },
      frameData: { //组件数据
        nickName: '新建文件夹',
        tip: '注：文件夹名不可超过10个字',
        btnNameLeft: '取消',
        btnNameRight: '创建',
      }
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getFolderList()
  },
  async getFolderList() {
    let res = await getSetting()
    let userInfo = wx.getStorageSync('userInfo')
    let folderData = wx.getStorageSync('folderData')
    if (res.authSetting['scope.userInfo'] && userInfo.id) {
      if (folderData.userId && Date.now() - folderData.time < 100000 * 10) {
        this.setData({
          'folderListData.listData': folderData.data
        })
      } else {
        this.sendRequest(userInfo.id)
      }
    } else {
      if (!folderData.userId && Date.now() - folderData.time < 100000 * 10) {
        this.setData({
          'folderListData.listData': folderData.data
        })
      } else {
        this.sendRequest()
      }
    }
  },
  async sendRequest(userId) {
    let res = await request({
      url: '/folderdata/getfolderlist.php',
      method: 'POST',
      data: {
        userid: userId
      }
    })
    if (res.data) {
      wx.setStorageSync('folderData', {
        userId,
        time: Date.now(),
        data: res.data
      });
      this.setData({
        'folderListData.listData': res.data
      })
    }
  },
  
  onMyEvent: function (e) {
    this.setData({
      edit: e.detail.edit
    })
  },
  createNewFolder() {
    this.data.inputConfig.value = ''
    this.setData({
      'fileFrameData.frameConfig.isShowFrame': !this.data.fileFrameData.frameConfig.isShowFrame,
      'inputConfig.num': 0,
    })
  },
  inputTrigger(e) { //子组件传过来的inputTrigger输入框监听事件处理函数
    let char = /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/;
    let reg = new RegExp(char);
    if (reg.test(e.detail.value)) {
      this.setData({
        'fileFrameData.frameConfig.isShowError': false,
        'inputConfig.num': e.detail.cursor,
        'inputConfig.value': e.detail.value
      })
    } else {
      this.setData({
        'fileFrameData.frameConfig.isShowError': true,
        'inputConfig.num': e.detail.cursor
      })
    }
  },
  async createBtn() { //子组件传过来的definer确认修改按钮事件处理函数
    let res1 = await getSetting()
    if (res1.authSetting['scope.userInfo'] && wx.getStorageSync('userInfo')) {
      // 已经授权
      if (this.data.inputConfig.value) {
        let res = await request({
          url: '/folderdata/createfolder.php',
          method: 'POST',
          data: {
            userid: wx.getStorageSync('userInfo').id,
            newFolder: this.data.inputConfig.value
          }
        })
        if (res.status == 200) {
          this.sendRequest(wx.getStorageSync('userInfo').id)
        } else {
          wx.showToast({
            title: res.msg,
            icon: 'none',
            duration: 1000
          })
        }
      } else {
        wx.showToast({
          title: '文件夹名为空',
          icon: 'none',
          duration: 1000
        })
      }
    } else {
      wx.showModal({
        title: '温馨提示',
        content: '你还未授权登录！',
        showCancel: false,
        confirmText: '确定',
      })
    }
    this.createNewFolder()
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getFolderList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})